package com.orangeforms.webadmin.upms.service;

import com.orangeforms.common.core.base.service.IBaseService;
import com.orangeforms.webadmin.upms.model.BusinessCollection;
import org.springframework.web.multipart.MultipartFile;


import java.util.List;

/**
 * @Author：howlrou
 * @Date：2024/8/2 14:47
 */
public interface BusinessCollectionService extends IBaseService<BusinessCollection, Long> {


    /**
     * 获取主表的查询结果，以及主表关联的字典数据和一对一从表数据，以及一对一从表的字典数据。
     * 该查询会涉及到一对一从表的关联过滤，或一对多从表的嵌套关联过滤，因此性能不如单表过滤。
     * 如果仅仅需要获取主表数据，请移步(getSysUserList)，以便获取更好的查询性能。
     *
     * @param filter  主表过滤对象。
     * @param orderBy 排序参数。
     * @return 查询结果集。
     */
    List<BusinessCollection> getBusinessCollectionList(BusinessCollection filter, String orderBy);


    /**
     * 查询藏品详情
     *
     * @param collectionId 藏品详情主键
     * @return 藏品详情
     */
    public BusinessCollection selectBusinessCollectionByCollectionId(Long collectionId);

    /**
     * 查询藏品详情列表
     *
     * @param businessCollection 藏品详情
     * @return 藏品详情集合
     */
    public List<BusinessCollection> selectBusinessCollectionList(BusinessCollection businessCollection);

    /**
     * 新增藏品详情
     *
     * @param businessCollection 藏品详情
     * @return 结果
     */
    public int insertBusinessCollection(BusinessCollection businessCollection);

    /**
     * 修改藏品详情
     *
     * @param businessCollection 藏品详情
     * @return 结果
     */
    public int updateBusinessCollection(BusinessCollection businessCollection);

    /**
     * 批量删除藏品详情
     *
     * @param collectionIds 需要删除的藏品详情主键集合
     * @return 结果
     */
    public int deleteBusinessCollectionByCollectionIds(Long[] collectionIds);

    /**
     * 删除藏品详情信息
     *
     * @param collectionId 藏品详情主键
     * @return 结果
     */
    public int deleteBusinessCollectionByCollectionId(Long collectionId);

    /**
     * 导入Excel表格数据
     *
     * @param file
     * @throws Exception
     */
    void saveExcelData(MultipartFile file) throws Exception;

    /**
     * 读取藏品Excel表格数据
     *
     * @param file
     * @return
     */
    List<BusinessCollection> readExcelData(MultipartFile file) throws Exception;
}
